package com.xiaoshuidi.cloud.module.finance.dal.dataobject.merchant;

import com.xiaoshuidi.cloud.framework.common.enums.CommonStatusEnum;
import com.baomidou.mybatisplus.annotation.*;
import com.xiaoshuidi.cloud.framework.tenant.core.db.TenantBaseDO;
import lombok.*;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 支付商户信息 DO
 * 目前暂时没有特别的用途，主要为未来多商户提供基础。
 */
@TableName("pay_merchant")
@KeySequence("pay_merchant_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class PayMerchantDO extends TenantBaseDO {

    /**
     * 商户编号，数据库自增
     */
    @TableId
    private Long id;

    private Long apartmentId;

    /**
     * 通商云账号
     */
    private String thirdId;
    /**
     * 商户号
     * 例如说，M233666999
     * 只有新增时插入，不允许修改
     */
    private String no;
    /**
     * 商户全称
     */
    private String name;
    /**
     * 商户简称
     */
    private String shortName;

    private String bankCardNo;
    private String address;

    /**
     * 1初始状态
     * 审核状态2-审核成功
     * 3-审核失败
     */
    private Integer reviewStatus;


    /**
     * 对私银行账户认证结果2：认证成功3：认证失败
     */
    private Integer accountSetResult;


    /**
     * 审核失败原因
     */
    private String failReason;


    /**
     * 认证类型1:三证2:一证
     */
    /**
     * 0：对私
     * 1：对公
     */
    private Integer accType;

    private Integer authType;

    /**
     * 营业执照号（三证）
     */
    private String businessLicense;

    /**
     * 统一社会信用（一证）
     */
    private String uniCredit;

    /**
     * 组织机构代码（三证）
     */
    private String organizationCode;

    /**
     * 税务登记证（三证）
     */
    private String taxRegister;

    /**
     * 联系电话
     */
    private String telephone;

    /**
     * 会员绑定的手机号
     */
    private String phone;


    /**
     * 法人姓名
     */
    private String legalName;

    /**
     * 法人证件类型
     */
    private Integer identityType;

    /**
     * 法人手机号
     */
    private String legalPhone;


    /**
     * OCR识别与企业工商认证信息是否一致0-否1-是
     */
    private Integer ocrRegnumComparisonResult;

    /**
     * OCR识别与企业法人实名信息是否一致0-否1-是
     */
    private Integer ocrIdcardComparisonResult;


    /**
     * 账户提现协议编号
     */
    private String acctProtocolNo;

    /**
     * 状态
     * <p>
     * 枚举 {@link CommonStatusEnum}
     */
    private Integer status;
    /**
     * 备注
     */
    private String remark;

    //链接失效时间
    private LocalDateTime linkValidTime;

    private String linkAddress;

}
